


Homestuck Manual Pages

by wraith



Category: Homestuck, Unix - Fandom, linux - Fandom
Genre: Computer Programming, Gen, man pages, unix
Language: English
Status: In-Progress
Published: 2015-12-13
Updated: 2015-12-22
Packaged: 2018-05-06 11:21:54
Rating: General Audiences
Warnings: No Archive Warnings Apply
Chapters: 4
Words: 2,214
Publisher: archiveofourown.org
Story URL: https://archiveofourown.org/works/5414918
Author URL: https://archiveofourown.org/users/wraith/pseuds/wraith
Summary: <blockquote class="userstuff">
              <p>A collection of manual pages for the most important programs in the Homestuck Universe.</p>
            </blockquote>





	1. man ccc

twinArmageddons@apiculture1$ man ccc

# CCC

#### NAME 

ccc - the Caret Cake Compiler or ^CAKE compiler

#### SYNOPSIS 

ccc [ **−c** | **-J** | **-A** | **-AA** | **-S** | **-F** | **-E** ][ **-recipe** = _standard_ ][ **-g** ] [ **-O1-O2-O3-O4-O5** ] [ **-Wno** -Warning] [- **W** pedantic] [- **I** dir][- **X** dir][- **include** _lname_ ] [- **temperature** = _NNNK_ ] [- **oven** = _standard_ ] [ **-o** _output LE_ ]

Only the most useful options are listed here; see **clang(1)** for the rest.

#### DESCRIPTION 

**CCC** is a ^CAKE Compiler and Trans-Compiler. **CCC** allows for direct compilation to assembly or translation to ~ATH, potentially followed by compilation to assembly. Both systems use the same preprocessor and parser. They share a similar ^CAKE optimizer. They have different code generators, assemblers, and linkers. It is possible to examine the output of any stage. However, to access the ~ATH stages, it is recommended that you translate to ~ATH and use **~ATHC(1)** rather than produce them via arguments to **CCC**.

**Preprocessor**  
This component first processes macros. It then adds hardware and os specific code. Finally, it tokenizes the source file. The result is a called a .ccp file.

**Parser**  
This component parses the tokenized file, generating a parse tree. It analyzes the parse tree to determine well-formedness. This where most warnings and parse errors originate. Warnings can be silenced with a **-Wno-W** arningname flag. The result is an abstract syntax tree (AST). The out- put file is called a .ast file.

**Compilation vs. Translation**  
CCC is both a compiler and a translator. You have the option to produce assembly code directly from ^CAKE code or produce ~ATH code from the ^CAKE code. You may compile to assembly or translate to ~ATH. Both options take the AST created from the parser. CCC compiles directly by default unless you use a prime numbered Windows version or Arch.

**Code Generation and Optimization**  
This component is used if you decide to compile the ^Cake code to assembly. This component translates the AST to low-level intermediate code and translates the intermediate code to machine code. In the former process, the code is optimized. In the latter process, the code is configured for the target machine. The output file is called a .s file.

**~ATH Code Generation and Optimization**  
This component translates the AST to high level ~ATH code. By default, the ~ATH code is immediately compiled by the ATH compiler, **~ATHC(1)**. A limited version of the standard CCC optimizer is applied. This variation focuses on removing ^CAKE related optimization blockers and generating code that the **~ATHC** optimizer can easily optimize. For information on further stages, consult **~ATHC(1)**.

If one wishes to examine the translation, the ~ATH code can be produced without calling **~ATHC**.

**Assembler**  
This component runs the target assembler and generates a target object file. The result is a .o file.

**Linker**  
This stage runs the target linker to combine object files into an executable. The result is a .out, .so, or .exe file.

#### Options 

**Stage Selection Options  
-E**

Runs the preprocessor stage.

**-F**

Runs the preprocessor and parser stages.

**-S**

Run the preprocessor, parser, and code generation stages.

**-A**

Run the preprocessor, parser, ~ATH translator stage, and ~ATH compiler. Pass and translate remaining compilation flags to **~ATHC**.

**-AA**

The above but without running the ~ATH compiler.

**-c**

Run the preprocessor, parser, code generator, and assembler, producing an object file.

Absent any of these flags, a linker will be run and an executable will be produced.

**Dialect selection  
-recipe** = _dialect_

Indicates the ^CAKE standard. Defaults to ISO 2011. ISO 2012 preferred due to the addition of Unicode support.

**Code Generation Options  
-O0 -O1 -O2 -O3 -O4**

Specify which optimization level to use. -O0 means no optimization. CCC defaults to -O0. Optimization level 1 enables most optimization. Level 2 attempts to reduce the code size. Level 3 favors decreasing execution time at the cost of a larger program. Level 4 enables link time optimization.

**-g**

Generates debug information for cakegrind

**Driver Options  
\--help**

Removes CCC from the computer.

**-Wno-W** arning 

Silences a warning.

**-pedantic**

Explicitly evaluates the code using the ^Cake standard.

**-o** _file_

Writes the final output to the file.

**-v**

Runs with verbose output

**-mass**

Initiates the **industrial oven**

**Preprocessor Options  
-ldir**

Add a specified directory to the bakery search path

**-xdir**

Excludes a specified directory from the bakery search path

**-include** _filename_

Adds a filename as icing to the cake.

**Environment  
-temperature** = _NNNK_

Sets the oven temperature (in kelvin). By default the temperature is set randomly.

**-oven** = _standard_

Selects the type of oven to bake the cake in. GE ovens are recommended.

#### Bugs 

Temperatures below 0k will trigger overheating. Explicitly setting temperature and prayer are recommended solutions.

Linking to -lsburb can cause instability.

Linking to -lathffi can cause instability if one decides to translate to  
~ATH.

Any other bugs can be reported to psiioniic@cake.crocker.com

#### See Also 

**~ATHC(1), ld(1), ghc(1), as(1), gdb(1)**

#### Author 

Maintained by the CCC team and ported to Alternia by the GHC team ([www.haskell.org](http://www.haskell.org))

* * *


	2. man pesterchum-cli

tentacleTherapist@Skaianetlabs$ man pesterchum-cli

# Pesterchum-cli

 

#### NAME

pesterchum-cli - A command line interface for the Pesterchum chat client.  

#### SYNOPSIS

pesterchum [ **-dv!** | **-p** _nnnnn_ | **-u** _user:pass_ | **-mdir** _directory_ | **-s** _script_ | **-m** _mood_ ]

 

#### DESCRIPTION

The perterchum-cli provides a command line interface for pesterchum. This allows one to easily port and use pesterchum on all unix based devices. As unix is the dominant operating system, this essentially brings pesterchum to all computing devices. The pesterchum cli is highly extensible, secure, and expressible. It can be modified by adding modules or using scripts. Its security is assured through the version 7 protocol. Expressibility is maintained through access to a wide variety of moods.

 

#### OPTIONS

  
**-v**

Version Information.

**-d**

Runs the terminal in dummy mode.

**-!**

Disables auto-connection to servers.

**-p** _nnnn_

Selects which port to use. Defaults to port 80.

**-u** _user:pass_

Selects a user-name and password for authentication.

**-mdir** _directory_

Selects a directory to add to Pesterchum's resource files.

**-s** _script_

Runs a script on Pesterchum. Scripts are written in lua or ~ATH (because fuck you) and information about the API can be found on the computercraft wiki.

**-m** _mood_

Selects a mood. The available options are: Chummy, Chipper, Palsy, Bully, Peppy, Mystified, Amazed, Insolent, Bemused, Pranky, Smooth, Pleasant, and Rancorous.

 

#### SBURB MOD

The game Sburb ships with a mod that unlocks pesterchum's ability to send information to different times. Unauthorized acquisition of this feature will be meet with harsh and immediate retaliation. For more information regarding the regulation of this feature please consult The European Organization for Nuclear Research.

 

#### SEE ALSO

There is extensive documentation online and in /usr/share/man/pesterchum

 

#### FILES

~/.pesterchum/config

Defaults for the CLI's options.

~/.pesterchum/self-destruct

Defaults for invalid user-names and passwords.

/usr/share/man/pesterchum/

Further documentation.

 

#### AUTHORS

**pesterchum-cli** was written by illuminatedwax **<[iw@cern.org](mailto:iw@cern.org)>**

Pesterchum was written by SBURB INC **<[support@sburb.org](mailto:support@sburb.org)>**

This man page was generated automatically

* * *


	3. man talloc

 

 

yaldabaoth@rywqrq809fhuqo3qrf$ man talloc

# TALLOC

 

#### NAME

talloc, tfree - allocate and free dynamic memory at specific points in time

 

#### SYNOPSIS

#include <sburblib.h>

void *talloc(size_t size, unsized long long s);

void tfree(void *ptr, unsized long long s);

 

#### DESCRIPTION

The **talloc()** function allocates _size_ bytes at the time January 1st 1970 plus _s_ seconds and returns a pointer to the allocated memory. The memory becomes allocated from the designated time to the time designated by the **tfree()** function. Right after the call is made, the memory could be deallocated, allocated and uninitialized, or initialized depending on the time of the free and assignment. Some of these scenarios are worked out later in this document. The function returns NULL if the size or time is invalid.

The **tfree()** function frees memory space pointed to by the _ptr_ at time January 1st 1970 plus _s_ seconds. If the memory pointed to by _ptr_ is not allocated at the specified time, the behavior is pseudo-defined.

Note that the remaining amount of time in the universe is bounded by sizeof(unsized long long). Also, note that the universe technically began on January 1st, 1970.

 

#### RETURN VALUE

The **talloc()** returns a pointer to the location where the memory will or has already been allocated. The memory is suitably aligned for any kind of variable. Any sort of error leads to a null return within a few seconds of the function call.

tfree has no return value.

 

#### CONFORMS TO

C11, ~ATH09(?), ^CAKE10

 

#### NOTES

  
 Some of the possible scenarios for calls to talloc and tfree.

Scenario 1:

Memory allocated -> Assignment -> Present/Call to talloc -> Freeing (Called in the past or future)

The memory is currently allocated and initialized to some value.

Scenario 2:

Memory allocated -> Assignment -> Freeing -> Present/Calls -> Calls

The memory is currently deallocated.

Scenario 3:

Memory allocated -> Present -> Freeing

The memory is currently allocated, but uninitialized.

Scenario 4:

Memory allocated -> Freeing -> Present

Assignment right now will result in an error, but it is possible to assign a value in the past using **tardis()**

Scenario 5:

Freeing -> Memory allocated

Starting at the time of memory allocation or the time of the memory allocation call, the timeline will be doomed.

Fin:

We feel that these scenarios provide sufficient guidance for any competent programmer to avoid fucking up.

For non-time related fucking up, please consult **[malloc](/cgi-bin/man/man2html?3+malloc)(3)**

 

#### SEE ALSO

**[malloc](/cgi-bin/man/man2html?3+malloc)(3)** , **[mmap](/cgi-bin/man/man2html?2+mmap)(2)** , **[brk](/cgi-bin/man/man2html?2+brk)(2)** , **[malloc_info](/cgi-bin/man/man2html?3+malloc_info)(3)** , **[mcheck](/cgi-bin/man/man2html?3+mcheck)(3)** , **[mtrace](/cgi-bin/man/man2html?3+mtrace)(3)** , **[time](/cgi-bin/man/man2html?3+time)(3)**

 

#### AUTHOR

Linus Torvalds and Skaia


	4. man scratch

# SCRATCH

#### NAME

scratch - reset a computational system, particularly the universe 

#### SYNOPSIS

scratch - **d** _system_ - **S** _seed_

#### DESCRIPTION 

Scratch resets any computational system to a random point in past but with a new seed in the form of a genetic code fragment. The use of a different seed leads to a radically different development of the system. By default, the command operates on the universe, the computational system par excellence. And, for all practical intents and purposes, the default is the only option as although the program has a switch for operating on different systems, no one has ever gotten it to work. 

#### WARNING

Scratches should only be used in extreme and extenuating circumstances. A scratch should only be used after **ALL** other options have been thoroughly considered. Scratches will completely and utterly annihilate the universe. To say that universe is "reset" is to put it kindly. The universe is completely and totally annihilated and a new universe is created as a partial reflection. This reflection is half-ass-ed; although around 99% of the genetic code of the system is conserved, there is no guarantee that any particular configuration of elements present in one universe will be present in another. Moreover, the 1% of DNA that is altered will undoubtedly affect all elements that directly relate to the users. 

**DON'T USE A SCRATCH UNLESS YOU HAVE TO.** Given the effects of a scratch, the command should only be used if the time-line is going to be completely and utterly screwed. If you are going to use one, the rest of this page is useless; why are you still reading it? **GO TALK TO ECHIDNA!**

#### OPTIONS

You can't use the options. Don't use the options. 

#### SEEDS

Seeds are simply 64 character strings of the letters A,T,C, and G. The first 16 letters encode the range of DNA to be affected. The first 8 encode the lower bound and the second 8 encode the upper bound. The next 32 encode a beta distribution, a Bernoulli distribution, and a modulating factor. During the generation of the new universe's DNA sequence, a number is drawn from the beta distribution. The absolute quartile of the support determines what letter is drawn. A draw from a Bernoulli distribution determines if the letter is added to the pool. No one really knows what the modulating factor does. The last 16 letters determine if the session is null, normal, or void. 

**NEVER USE YOUR OWN SEED!** Always allow the program to select the seed. Selecting your own seed is exceptionally difficult and will probably lead to the generation of an implicitly null session (that is a session which is almost certainly going to fail, but it is not doomed to fail). There are around 3.40*10^38 possible seeds and research [Knuth93] has established that the upper bound of the number of viable seeds is around a few million (or 1.00*10^-33 % of all possible sequences). 

#### HARDWARE

There are a few hardware requirements. The system must have computational actors for time and space. The system must have a ignition device corresponding to time's actor and an ignition, typically a pair of very sharp needles, corresponding to space's actor. The use of the command will cause a computational actor to "scratch" the ignition device with the ignition. 

#### BUGS

Large amounts of temporal energy are released within a few minutes of the call. 

Barriers between the system and the world break down during the scratching. 

If too much material escapes from the system during the scratching, the resultant system will be null. 

#### HISTORY

Richard Stallman wished to include this in coreutils in place of rm. He felt that users would be less likely to screw up their machines with this command. 

#### AUTHORS

The original author of this page is believed to be Doc Scratch.

Certain sections are clearly the handiwork of Rose Lalonde. 

The authors section has been modified by Calliope. 

The program's author is unknown. 

Later versions of the program were modified by Doc Scratch. 

#### SEE ALSO

A̪͚̣͡Ț̛C̙̗̮̝̙G͕̩ͅA͓̲̥̣T̘̞̠̥̺̤́C̠͖G̢A̸̹T̮̰͙̖̕Ç̖̘͎̼̞̫͍G͇̮̻͕̝̙̰͞Ą̹̫͉̝̼̩͍T̖͉́CG̹̤͕̩͕̣A̟̤̞̯͕̯͜T̸̬̱̤͍̠C̘̲̠̣̗̠G͖͙̻A̢̭͙T̰CG̢A͚̻̱̭̞̙̘T̸̖͚͉̩̝̙C̤͙̻͎̘͖G͓̣̖Ą͚̫͍͕̳̠T̬̻̭̩C͖̀G̴̖͓Ạ͎̘͉́ͅT͍͔͖͚͎̹̥C͙͕̬GA̪̰͟ͅT̗̟͟C̥͓̮̜̣͙ͅG͈̳͚̬͙̖̪Á̩̟̜͈TC̗͖̥̤̺ͅG͇A͕̦̠͇̝ͅT̸̺̯̳C̢G̠͇A̷͖̗͔̺T̶͙ͅC̟̪̱̭̳͍͜ͅG̜̻̖A̹͉̬͉̺̰͕͝T͘CG҉̳̼͎̗ͅA͓̯̼̥͙̞̜͠T̷CG̙̺̕A̷͉͍͕̥T̥C̰͈̳̞̪G̘͙̳̬͟A͖̤̩͈͓̦T҉͇̩̪͕͙͎C̙̮̬̬̝G̻̮̫̜A̧T̙C̞ͅG̴̺A̹̞̣̻͓̞T͕̖C̬͇̺G̖͇̬͚Á̹̦̞̠T̪C͚̮͙̞͕G҉̲̙̬͎͍Á͇̺͈͚͙͎T̸̮̞͈̫C͎̱̼̖͇̫̱G͔͈̠͈A̩̼͞Ṯ͍̰̳C̙̪̲̪̟̮G̩̠̤̪̣̟̤AT̡C̹̻̲̼̲̩͉͜G̥̖̼͎̺͟A̧͔͔̩̯͇̳T̮̦̪̼͚̕ͅC͕̟̖͎̼ͅG̰̻͔͕̜̪A̖͠T̵͎̳C͙̭̮G̴̰ͅA̶͔̮̳͎̠T͉͙̻̺͕̹̗͝C͕Ģ͖̺̯͖̠A͖̞̭̙̗̠͖Ţ̰C̹̦̣̪͞G͞A̶̻͉̖̫̼̟̞TC̢̝̻̦̹͚̯G̫̞̖̞͢A̻̭̲̪͚̬͠T̶C̲̭͙̦̣̙͞G͕̪̥̣̙̝A̷̬̞͔̜T͏͉̬̪̤̳C̭̭͔̱̱̺̳̀G͇͍̩̘̙̺Ạ͔̤̯T̻͍͉̲̣̤͡C͈̟̝̱̹̖͈͞G̞͚̥̗A̲͢T̸̳C̪̗̼̩̼̺ͅG̥̱̼A͙͙T̸̠͓̺̳ͅC̢̰̭̤G̣̳̺̝͉̟A̻̲̺TC͕̺̞͙̦̼ 


End file.
